
// #ifndef VUE3
import Vue from 'vue'
import App from './App'

// 导入 vuex store 实例
import store from '@/store/store.js'

// 导入网络主求的包
import { $http } from '@escook/request-miniprogram'

// 把网络请求对象挂载到 uni 对象中，方便后面调用 uni.$http
uni.$http = $http

// 配置请求根路径
$http.baseUrl = 'https://www.uinav.com'

// 网络请求拦截器（即发送请求前的处理）
$http.beforeRequest = function(options){
  uni.showLoading({
    title: '数据加载中...'
  })
  
  // 判断请求的是否是需要权限的api接口（路径包含/my/，是需要token权限的）
  if(options.url.indexOf('/my/') !== -1) {  //如果请求url包含/my/路，表示需要传token请求头权限
    options.header = {
      // token值直接从 vuex store 中获取，上面已用 import store from .... 引入了 store，可以直接使用
      Authorization: store.state.m_user.token
    }
  }
}

// 网络响应拦截器（即接收响应数据后的处理）
$http.afterRequest = function(res){
  uni.hideLoading()
}

// 封装提示消息方法
uni.$showMsg = (title = '数据请求失败！', duration = 2000, icon = 'none') => {
  uni.showToast({
    title,
    duration,
    icon,
    mask: true
  })
}

Vue.config.productionTip = false

App.mpType = 'app'

const app = new Vue({
    ...App,
    // 挂载 vuex store 实例到 vue 实例对象上
    store
})
app.$mount()
// #endif

// #ifdef VUE3
import { createSSRApp } from 'vue'
import App from './App.vue'
export function createApp() {
  const app = createSSRApp(App)
  return {
    app
  }
}
// #endif